/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package economicocontrol.dao;

import economicocontrol.dao.ManagerDAO;
import economicocontrol.dao.entity.GradoSeguridad;

import java.util.Iterator;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;
import javax.persistence.TypedQuery;

/**
 *
 * @author CyberOD
 */

    public class GradoSeguridadDAO extends ManagerDAO{        
        public  List<GradoSeguridad> findAll(){
          try {
            EntityManager em = getEntityManager();
            TypedQuery<GradoSeguridad> query =em.createNamedQuery("GradoSeguridad.findAll", GradoSeguridad.class);
            
            List<GradoSeguridad> results = query.getResultList();
            em.close();
            return  results;
        }catch(Exception ex) {
            ex.printStackTrace();
        }
        return  null;
    } 

    public  List<GradoSeguridad> buscar(String idDep, String nomDep, String stDep){
          try {
            EntityManager em = getEntityManager();
            TypedQuery<GradoSeguridad> query =em.createNamedQuery("GradoSeguridad.buscar", GradoSeguridad.class).setParameter("numDepartamento",nomDep+"%");
            List<GradoSeguridad> results = query.getResultList();
            em.close();
            return  results;
        }catch(Exception ex) {
            ex.printStackTrace();
        }
        return  null;
    }
    
    public  List<GradoSeguridad> buscarIdDep(String idDep){
          try {
            EntityManager em = getEntityManager();
            TypedQuery<GradoSeguridad> query =em.createNamedQuery("GradoSeguridad.findByIdGradoSeguridad", GradoSeguridad.class).setParameter("idGradoSeguridad",idDep);
            List<GradoSeguridad> results = query.getResultList();
            em.close();
            return  results;
        }catch(Exception ex) {
            ex.printStackTrace();
        }
        return  null;
    }
    
    public int idMax(){
          try {
            EntityManager em = getEntityManager();
            TypedQuery<GradoSeguridad> query =em.createNamedQuery("GradoSeguridad.idmax", GradoSeguridad.class);
            List<GradoSeguridad> results = query.getResultList();
            Object[] array =results.toArray();
            em.close();
            return  Integer.parseInt(array[0].toString()==null?"0":array[0].toString());
        }catch(Exception ex) {
            //ex.printStackTrace();
            return  0;
        }
    }
    
    public void insert( GradoSeguridad depEn){
          try {              
            EntityManager em = getEntityManager();               
            em = getEntityManager();
            em.getTransaction().begin();
            em.persist(depEn);
            em.getTransaction().commit();
            em.close();
        }catch(Exception ex) {
            ex.printStackTrace();
        }
    }
    
    public void update(GradoSeguridad depEn){
        try {      
            EntityManager em = getEntityManager();               
            em = getEntityManager();
            em.getTransaction().begin();            
            GradoSeguridad dep=em.merge(depEn);
            em.flush();            
            em.getTransaction().commit();
            em.close();
        }catch(Exception ex) {
            ex.printStackTrace();
        }
    }
    
    public void delete (GradoSeguridad depEn){
                       
        try {            
           
            EntityManager em = getEntityManager();               
            em = getEntityManager();
            em.getTransaction().begin();            
            GradoSeguridad dep=em.merge(depEn);
            em.remove(dep);
            em.getTransaction().commit();
            em.close();
        }catch(Exception ex) {
            ex.printStackTrace();
        }
    }
}
